home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / FPCHELP.LZH / DECOM.HLP < prev    next >
Text File  |  1987-12-19  |  5KB  |  113 lines

  1.  
  2. OUT   ( # apf -- ) ( report out of range error )
  3.    Display an error message if the index is out of range
  4.    as pointed to by the parameter field.
  5. MAP  ( # apf -- a ) ( convert subscript # to address a )
  6.    Map a subscript and a pfa into an actual address.
  7.  
  8. CASE:   (S n --  ) ( define positional case defining word )
  9.    A positional case statement.  The number of cases is
  10.    specified for error checking.  At runtime, the nth word
  11.    is executed, depending upon the value on the stack.
  12.  
  13. ASSOCIATIVE:
  14.    An associative memory word.  It must be followed by a set
  15.    of values to be looked up.
  16.    At Runtime, the values stored in the parameter field are
  17.    searched for a match.  If one if found, the index to that
  18.    value is returned.  If no match is made, then the number
  19.    of entries, ie max index + 1 is returned.  This is the
  20.    inverse of an array.
  21.  
  22. (SEE)   Forward reference to decompile deferred words
  23. The following are used only by the decompiler:
  24. .WORD       (S IP -- IP' )
  25.    Display the name of a word, and bump the simulated IP by 2.
  26. .INLINE     (S IP -- IP' )
  27.    Display a word that contains an inline literal value.
  28. .BRANCH     (S IP -- IP' )
  29.    Dispaly a word that contains an inline branch.
  30. .QUOTE      (S IP -- IP' )
  31.    Handles the special case of COMPILE xxx.
  32. .STRING     (S IP -- IP' )
  33.    Displays a word with an inline string arguement.
  34.  
  35. DOES?   (S IP -- IP' F )
  36.    Increments simulated IP and returns true if call dodoes there
  37. .(;CODE)    (S IP -- IP' )
  38.    Perhaps continue to decompile a defining word.
  39. .FINISH     (S IP -- IP' )
  40.    Display current word and quit.
  41.  
  42. EXECUTION-CLASS
  43.    This table lists all of the special cases that must be
  44.    decompiled differently from ordinary Forth words like DUP
  45.    and + etc.  At runtime, if the simulated IP points to a
  46.    word in this group, the corresponding index from this
  47.    table will be returned, and placed upon the stack.  If
  48.    there is no match, then the last index + 1 is returned.
  49.  
  50. .EXECUTION-CLASS
  51.    This giant case statement handles the special case
  52.    decompiling needed.  Each entry corresponds to an
  53.    entry in the previous EXECUTION-CLASS associative
  54.    table.  The function of each of these words is to
  55.    decompile the current word that the simulated IP is
  56.    pointing to, and advance the simulated IP accordingly.
  57.    If no match in the table, .WORD is used.
  58.  
  59. .PFA   (S CFA -- )
  60.    This decompiles a parameter field which contains a list of
  61.    code fields, as is found in : definitions.
  62.  
  63. .IMMEDIATE   (S CFA -- )
  64.    This indicates whether the current word is Immediate or not.
  65.  
  66. .CONSTANT    (S CFA -- )
  67.    Decompile a Constant, and prints its value.
  68. .VARIABLE    (S CFA -- )
  69.    Decompile a Variable, giving its location and value.
  70.  
  71. .:           (S CFA -- )
  72.    Decompile a high level : definition.
  73. .DOES>       (S CFA -- )
  74.    Decompile a word defined by a CREATE DOES> word.
  75. .USER-VARIABLE   (S CFA -- )
  76.    Decompile a USER variable, giving the offset from the
  77.    base of the user area and the current value.
  78.  
  79. .DEFER  Tell the user that this is a deferred word and
  80.    decompile its current definition.
  81. .USER-DEFER  Tell the user that this is a USER deferred word and
  82.    decompile its current definition.
  83. .OTHER   (S CFA -- )
  84.    This decompiles words whose category was is not known.  Code
  85.    words are recognized, as are words defined by defining words.
  86.    The runtime portion of a word defined by a defining word is
  87.    decompiled, since the parameter field is determined by the
  88.    CREATE portion and cannot be deciphered.  If all else fails,
  89.    the word is listed as UNKNOWN.
  90.  
  91. DEFINITION-CLASS
  92.    This categorizes the different classes of words that the
  93.    decompiler will handle.  For each class, determined by the
  94.    type of defining word used, the code field is identical.
  95.    Thus the standard classes are recognized.
  96.  
  97. .DEFINITION-CLASS
  98.    These are the routines that handle the decompilation of
  99.    each class.  The most useful, and of course most common one
  100.    is .: which decompiles : definitions.  If the class is not
  101.    recognized, we check to see if it is a CODE word or perhaps
  102.    defined by a high level CREATE DOES>  word.
  103.  
  104. ((SEE))   (S Cfa -- )
  105.    Takes an arbitrary code field address and decompiles it
  106.    based upon its definition class.  Upon completion, it
  107.    indicates whether or not the word is immediate.
  108.  
  109. SEE   (S -- )
  110.    The user interface.  To decompile something type SEE xxx
  111.  
  112.  
  113.